﻿// Gateway.Api 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
// 
// 本项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
// 
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！

using System.Text.Json.Serialization;

namespace Aurora.AI.MetaGLM.Models.RequestModels.WebSearchModels;

/// <summary>
/// web search tool
/// </summary>
public class WebSearchTool
{
    
    public string type { get; set; } = "web_search";
    /// <summary>
    /// 网络搜索功能默认为关闭状态（False）。当启用搜索（设置为 True）时，系统会自动判断是否需要进行网络检索，并调用搜索引擎获取相关信息。检索成功后，搜索结果将作为背景信息输入给大模型进行进一步处理。每次网络搜索大约会增加1000个 tokens 的消耗。
    /// </summary>
    [JsonPropertyName("enable")]
    public bool Enable { get; set; }

    /// <summary>
    /// 使用 search_query 参数可以自定义搜索内容，提升搜索结果的相关性和精确度。 如果不传 search_query 参数，系统将根据用户的消息自动进行网页检索
    /// </summary>
    [JsonPropertyName("search_query")]
    public string SearchQuery { get; set; }
    
    /// <summary>
    /// 启用 search_result 参数允许用户获取详细的网页搜索来源信息，包括来源网站的图标、标题、链接、来源名称以及引用的文本内容。
    /// </summary>
    [JsonPropertyName("search_result")]
    public bool SearchResult { get; set; }
    
    /// <summary>
    /// 使用 search_prompt 允许用户自定义模型引用搜索结果的方式，prompt 必须包含 {search_result} 表示搜索结果
    /// </summary>
    [JsonPropertyName("search_prompt")]
    public string SearchPrompt { get; set; }
    
}